const gettime = {
	// 获取时间（相差300秒内的信息不显示）
	getChatTime(v1, v2){
		v1 = v1.toString().length < 13 ? v1 * 1000 : v1;
		v2 = v2.toString().length < 13 ? v2 * 1000 : v2;
		if((((parseInt(v1) - parseInt(v2)) / 1000) > 300)){
			return this.gettime(v1);
		}
	},
	// 获取时间
	gettime(shorttime){
		shorttime = shorttime.toString().length < 13 ? shorttime * 1000 : shorttime;
		let now = (new Date()).getTime();
		let cha = (now - parseInt(shorttime)) / 1000;
		if(cha < 43200){
			// 当天
			return this.dateFormat(new Date(shorttime), "A t:ii");
		} else if(cha < 518400){
			// 隔天显示日期+ 时间
			return this.dateFormat(new Date(shorttime), "M月DD日 A t:ii")
		}else{
			// 隔年 显示完整的日期+时间
			return this.dateFormat(new Date(shorttime), "Y-MM-DD A t:ii");
		}
	},
	// 
	dateFormat(date, formatStr){
		let ret;
		const opt = {
			"Y+": date.getFullYear().toString(),
			"M+": (date.getMonth() + 1).toString(),
			"D+": date.getDate().toString(),
			"A+": date.getHours() > 12 ? '下午' : '上午',
			"t+": date.getHours().toString(),
			"i+": date.getMinutes().toString()
		};
		for (let k in opt){
			ret = new RegExp("(" + k + ")").exec(formatStr);
			if(ret){
				formatStr = formatStr.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
			}
		}
		return formatStr;
	},
	parseNumber(num){
		return num < 10 ? '0' + num : num;
	},
	/* 
	 * 计算指定时间与当前的时间差
	 * 
	 */
	getDiff(date){
		let dateBegin = new Date(date.replace(/-/g, "/"));
		let dateEnd = new Date(); // 获取当前时间
		let dateDiff = dateEnd.getTime() - dateBegin.getTime(); // 获取相差的时间毫秒数
		let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); // 获取相差的天数
		 // 计算出小时数
		let leave1 = dateDiff % (24 * 3600 * 1000); // 计算相差天数后剩余的毫秒数
		let hours = Math.floor(leave1 / (3600 * 1000));
		// 计算出相差的分钟数
		let leave2 = leave1 % (60 * 1000);  // 计算小时后剩余的毫秒数
		let minutes = Math.floor(leave2 / (60 * 1000)); // 计算出相差的分钟数
		// 计算相差秒数
		let leave3 = leave2 % (60 * 1000); // 计算分钟数后剩余的毫秒数
		let seconds = Math.round(leave3 / 1000);
		return dayDiff + '天' + hours + '小时';
	},
	/* 计算星座 */
	getHoroscope(dateStr) {
		let c = ['摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯'];
		let date = new Date(dateStr);
		let month = date.getMonth() + 1;
		let day = date.getDate();
		let startMonth = month - (day - 14 < '865778999988'.charAt(month));
		return c[startMonth] + '座';
	}
	
}

export default {
	gettime
}